Introdução

Literatura utilizada:
Inteligência Artificial - Uma Abordagem de Aprendizado de Máquina

Referências:
Data Science Academy
Udacity

Uma das definições de Aprendizado de Máquina (AM):

Mitchell (1997)

A Capacidade de melhorar o desempenho na realização de alguma tarefa por meio da experiência.

Problemas da computação são resolvidos por meio de um algoritmo que especifica passo a passo de como o problema deve ser resolvido. Mas não é fácil escrever um algoritmo que faça coisas simples do dia a dia, como reconhecer as pessoas pela sua face ou sua fala.

  • Que características do rosto ou da fala devemos considerar?
  • O que fazer para diferentes expressões faciais de uma mesma pessoa, como uso de um óculos ou bigode, cortes de cabelo, mudanças na voz por uma gripe ou mudança de espírito?

No entando os seres humanos conseguem realizar essas tarefas com facilidade. Fazemos isso por reconhecimento de padrões, quando aprendemos o que dever ser observado em um rosto ou uma fala conseguimos identificar pessoas após termos visto vários exemplos de rostos ou falas com identificação clara.

Um bom médico consegue dar um diagnóstico após ver o conjunto de sintomas e o resultado de exames clínicos. Para isso ele utilizada o conhecimento adquirido na sua formação e experiência proveniente do exercício da profissão. Como escrever um algoritmo que dados os sintomas e resultados clínicos faça um diagnóstico preciso tão bem como de um médico experiente?

Outro problema difícil é escrever um algoritmo que descubra quantas pessoas fizeram mais de uma compra em uma loja no ano anterior, programas de banco de dados podem ser facilmente utilizados. Entretando, como fazer perguntas mais complicadas como:

  • Identificar conjuntos de produtos que são frequentemente vendidos em conjunto.
  • Recomendar novos produtos a clientes que constumam comprar produtos semelhantes.
  • Agrupar os clientes da loja em grupos de forma a ter melhores resultados nas operações de marketing.

Apesar da complexidade desses programas, o número de vezes em que essas tarefas precisam ser realizadas diariamente é muito grande. Isso, aliado ao volume de informações que precisam ser consideradas para sua realização, torna díficil ou mesmo impossível a sua realização por seres humanos.

Técinicas de Inteligência Artificial (IA), em particular de Aprendizado de Máquina (AM), têm sido utilizadas com sucesso em grande número de problemas reais como:

  • Reconhecimento de voz.
  • Predição de taxa de curas de pacientes com diferentes doenças.
  • Detecção de uso fraudulento de cartões de crédido.
  • Condução de automóveis de forma autonônoma em rodivias.
  • Ferramentas de jogam gamão e xadrez de forma semelhante a campeões.
  • Diagnóstico de câncer por meio da análise de dados de expressão gênica.

Além do grande volume de aplicações que se beneficiam das características da área de AM, outros fatores têm favorecido a expansão dessa área, como o desenvolvimento de algoritmos cada vez mais eficazes e eficientes e a elevada capacidade dos recursos computacionais atualmente disponíveis.

Outras motivações para a pesquisa em AM incluem a possibilidade de aumentar a compreensão de como se da o aprendizado nos seres vivos. Além disso, algumas tarefas são naturalmente mais bem definidas por meio de exemplos. Os modelos gerados são ainda capazes de lidar com situações não apresentadas durante seu desenvolvimento, sem necessariamente necessitar de uma nova fase de projeto (capacidade de generalizar).

Indução de Hipóteses

Para ilustrar a relação entre AM e indução de hipóteses, imagine um conjunto de dados composto de pacientes de um hospital. Nesse conjunto, que será denominado hospital, cada dado (exemplo ou registro) correspondente a um paciente e é uma tupla formada pelos valores de características ou atributos referentes ao paciente, que descrevem seus principais aspectos. Os atributos utilizados para cada paciente podem ser, por exemplo, sua identificação nome, idade, sexo, estado de origem, sintomas e resultados de exames clínicos. Exemplos de sintomas podem ser presença de distribuição de manchas na pele, peso e temperatura do corpo.

Um dos atributos é considerado um atributo de saída cujos valores podem ser estimados utilizando os valores dos demais atributos, denominados atributos de entrada. O objetivo de um algoritmo de AM utilizado nessas tarefas é aprender, a partir de um subconjunto dos dados, denominado conjunto de treinamento, um modelo ou hipótese capaz de relacionar valores de atributos de entrada de um objeto do conjunto de treinamento ao valor de seu atributo de saída. Exemplo:

Caracteristíca01 Caracteristíca02 Caracteristíca03 Saída
1254.15 125.58 548.98 Doente
05.15 12.58 5.98 Saudável

Um dos requisitos para algoritmos de AM é que eles sejam capazes de lidar com dados imperfeitos. Muitos conjuntos de dados apresentam algum tipo de problema, como presença de ruídos, dados inconsistentes, dados ausentes e dados redundantes. Dependendo de sua extensão, esses problemas podem prejudicar o processo indutivo. Técnicas de pré-processamento são utilizadas com frequência para identificar e minimizar a ocorrência desses problemas.

No caso dos dados de pacientes os atributos referentes à identificação e nome do paciente não são considerados entradas relevantes, uma vez que não possuem relação nenhuma com o diagnóstico de uma doença.

O que se deseja, na verdade é induzir uma hipótese capaz de fazer diagnósticos corretos para novos pacientes diferentes daqueles que foram utilizados para aprender a regra de decisão. Assim, uma vez induzida uma hipótese, é desejável que ela também seja válida para outros objetos do mesmo domínio ou problema que não fazem parte do conjunto de treinamento (capacidade de generalização de hipóteses). Para ser útil quando aplicada a novos dados, uma hipótese precisa apresentar uma boa capacidade de generalização.

Quando uma hipótese apresenta uma baixa capacidade de generalização a razão pode ser que ela está superajustada aos dados de treinamento (overfitting). Nesse caso, também é dito que a hipótese memorizou ou se especializou nos dados de treinamento. No caso inverso, o algoritmo de AM pode induzir hipóteses que apresentam uma baixa taxa de acerto mesmo no subconjunto de treinamento, configurando uma condição de subajustamento (underfitting). Essa situação pode ocorrer, por exemplo, quando os exemplos de treinamento disponíveis são pouco representativos ou o modelo usado é muito simples e não captura os padrões existentes nos dados.

Viés Indutivo

Quando um algoritmo de AM está aprendendo a partir de um conjunto de dados de treinamento, ele está procurando uma hipótese, no espaço de possíveis hipóteses, capaz de descrever as relações entre os objetos e que melhor se ajuste aos dados de treinamento.

Cada algoritmo ultiliza uma forma ou representação para descrever a hipótese induzida. Por exemplo, redes neurais artificiais representam uma hipótese por um conjunto de valores reais, associados aos pesos de suas conexões da rede. Árvores de decisão utilizam uma estrutura de árvore em que cada nó interno é representado por uma pergunta referente ao valor de um atributo e cada nó externo está associado a uma classe.

A representação utilizada define a preferência ou viés (bias) de representação do algoritmo e pode restringir o conjunto de hipóteses que podem ser induzidas pelo algoritmo.

Além do viés de representação, os algoritmos de AM possuem também um viés de busca. O viés de busca de um algoritmo é a forma como o algoritmo busca a hipótese que melhor se ajusta aos dados de treinamento. Ele define como as hipóteses são pesquisadas no espaço de hipóteses. Por exemplo, o algoritmo ID3, que é utilizado para indução de árvores de decisão, tem como viés de busca a preferência por árvores de decisão com poucos nós.

Assim, cada algoritmo de AM possui dois vieses, um viés de representação e outro de busca. O viés é necessário para restringir as hipóteses a serem visitadas no espaço de busca. Sem viés não haveria aprendizado/generalização. Os modelos seriam especializados para exemplos individuais.

Tarefas de Aprendizado

Algoritmos de AM têm sido amplamente utilizados em diversas tarefas, que podem ser organizadas de acordo com diferentes critérios. Um deles diz respeito ao paradigma de aprendizado a ser adotado para lidar com a tarefa. De acordo com esses critérios, as tarefas de aprendizado podem ser divididas em:

  • Preditivas
  • Descritivas

Aprendizado Supervisionado (classificação e regressão)

Em tarefas de previsão, a meta é encontrar uma função a partir dos dados de treinamento que possa ser utilizada para prever um rótulo ou valor que caracterize um novo exemplo, com base nos valores de seus atributos de entrada. Para isso, cada objeto do conjunto de treinamento deve possuir atributos de entrada e saída.

Os algoritmos ou método de AM utilizados nesse tarefa induzem modelos preditivos. Esses algoritmos seguem o paradigma de aprendizado supervisionado. O termo supervisionado vem da simulação da presença de um "supervisor externo", que conhece a saída (rótulo) desejada para cada exemplo. Com isso o supervisor externo pode avaliar a capacidade de hipótese induzida de predizer o valor de saída para novos exemplos.

Aprendizado Não Supervisionado (agrupamento, associação, sumarização)

Em tarefas de descrição, a meta é explorar ou descrever um conjunto de dados. Os algoritmos de AM utilizados nessas tarefas não fazem uso de atributos de saída. Por isso, seguem o paradigma de aprendizado não supervisionado. Uma tarefa descritiva de agrupamento de dados, por exemplo, tem por meta encontrar grupos de objetos semelhantes no conjunto de dados. Outra tarefa descritiva é encontrar regras de associação que relacionem um grupo de atributos a outro grupo de atributos.

O objetivo do um modelo não supervisionado é organizar os dados de alguma forma ou descrever sua estrutura.

Aprendizado Semi Supervisionado

Uma tarefa de aprendizado semissupervisionado pode ser uma tarefa de agrupamento semi-supervisionado ou de classificação/regressão semi-supervisionada.

Agrupamento semi-supervisionado é utilizado quando os dados são não rotulados, mas são conhecidas algumas restrições sobre os dados, como que par de exemplos dever estar no mesmo grupo ou em grupos diferentes.

A classificação semis-upervisionada é utilizada em tarefas de classificação em que apenas parte dos exemplos de treinamento possui um rótulo de classe.

Raciocínio semelhante é utilizado para a regressão semi-supervisionada. Isso acontece porque rotular exemplos poder ter um custo elevado, poder ser uma tarefa difícil ou pode necessitar de dispositivos especiais.

O aprendizado semi-supervisionado procura aumentar o número de exemplos rotulados utilizando como conjunto de treinamento os exemplos atualmente rotulados. O modelo induzido com esses dados é utilizado para rotular exemplos não rotulados. Para isso, o exemplo não rotulado deve ter sua classe predita com uma boa confiança. Esses exemplos são então adicionados ao conjunto de treinamento e o processo se repete até que os exemplos que satisfaçam uma dada condição sejam rotuladas. Assim, esse tipo de aprendizado utiliza de forma passiva tanto os dados rotulados quando os não rotulados para induzir um modelo preditivo.

Aprendizado por Reforço

O aprendizado por reforço tem como meta reforçar ou recompensar uma ação considerada positiva e punir uma ação considerada negativa. Um exemplo de tarefa de reforço é a de ensinar um robô a encontrar a melhor trajetória entre dois pontos. Algoritmos de aprendizado utilizados nessa tarefa, em geral, punem a passagem por trechos pouco promissores e recompensam a passagem por trechos promissores.


Preparação de Dados

Análise de Dados

A análise das características presentes em um conjunto de dados permite a descoberta de padrões e tendências que podem fornecer informações valiosas que ajudam a compreender o processo que gerou os dados. Muitas dessas características podem ser obtidas por meio da aplicação de fómulas estatísticas simples. Outras podem ser observadas por meio do uso de técnicas de visualização.

Pré-processamento de Dados

Redução de Dimencionalidade

Modelos Preditivos

Modelo Preditivo é uma função matemática que, aplicada a uma massa de dados, consegue identificar padrões ocultos e prever o que poderá ocorrer.

Métodos baseados em distâncias

Métodos baseado em distância têm seu desempenho afetado pela medida ou função de distância utilizada. Um problema da medida de distância está em pressupor que os dados correspondem a pontos no espaço d-dimensional, ou seja, que seus atributos são númericos (contínuos). Contudo, diversos problemas possuem dados com atributos qualitativos. Outro aspecto que deve ser observado no cálculo da distância entre objetos é a escala utilizada para os valores dos atributos. Por exemplo, qual o efeito na função distância da representação de um atributo em cm ou Km? As medidas de distância são afetadas pela escala dos atributos. Para minimizar esse efeito, os atributos são usualmente normalizados.

Métodos probabilísticos

Os métodos probabilísticos bayesianos assumem que a probabilidade de um evento A, que pode ser um classe (por exemplo, praticar um esporte), dado um evento B, que pode ser um valor para um atributo de entrada (por exemplo, condição do tempo), não depende apenas da relação entre A e B, mas também da probabilidade de observar A independentemente de observar B.

Métodos Baseados em Procura

O problema de aprendizado de máquina pode ser formulado como um problema de procura em um espaço de possíveis soluções. Dada uma linguagem para representar generalizações de exemplos e uma função de avaliação de hipóteses, o problema de aprendizado procura no espaço de hipóteses definido pela linguagem de representação.

Métodos Baseados em Otimização

Redes Neurais Artificiais

Support Vector Machines

Clusters

Tipos de clusters:

Modelos Mútiplos Preditivos

Ensembles de Agrupamentos